Dynamically displaying current status of tasks

ABSTRACT

The current status of a list of tasks to be performed is dynamically displayed. The tasks may be performed by a user (e.g., data entered by the user, words spoken by the user, actions taken by the user, and so forth) or alternatively by a computer (e.g., the steps it follows in carrying out a programmed task). At least a portion of the list is displayed at any given time along with an indication of which task is the next task to be performed. As the tasks are completed, the current status of the progression through the items on the list is dynamically updated so as to readily inform the user (or someone else) as to what the current task is that needs to be performed, as well as what tasks have already been performed and/or what tasks remain to be performed.

RELATED APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationNo. 09/879,829 filed Jun. 11, 2001 and entitled “Dynamically DisplayingCurrent Status of Tasks”, which is hereby incorporated by reference, andwhich claims the benefit under 35 USC 119(e) of U.S. ProvisionalApplication No. 60/240,685, filed Oct. 16, 2000, entitled “Method forDynamically Displaying the Current Status of Tasks”.

TECHNICAL FIELD

The present invention is directed to graphical user interfaces and moreparticularly to dynamically displaying the current status of tasks.

BACKGROUND

As computers become increasingly powerful and commonplace, they arebeing used for an increasingly broad variety of tasks. For example, inaddition to traditional activities such as running word processing anddatabase applications, computers are increasingly becoming an integralpart of users' daily lives. Programs to schedule activities, generatereminders, and provide rapid communication capabilities are becomingincreasingly popular. Moreover, computers are increasingly presentduring virtually all of a person's daily activities. For example,hand-held computer organizers (e.g., PDAS) are increasingly common, andcommunication devices such as portable phones are increasinglyincorporating computer capabilities. More recently, the field ofwearable computers (e.g., with eyeglass displays) has begun to expand,creating a further presence of computers in people's daily lives.

Computers often progress through a particular series of steps whenallowing a user to accomplish a particular task. For example, if a userdesires to enter a new name and address to an electronic address book,the computer progresses through a series of steps prompting the user toenter the desired information (e.g., name, street address, city, state,zip code, phone number, etc.). On computers with large displays (e.g.,typical desktop computers), sufficient area exists on the display toprovide an informative and useable user interface (UI) that allows theuser to enter the necessary data for the series of steps. However,problems exist when attempting to guide the user through the particularseries of steps on smaller displays. Without the large display area,there is frequently insufficient room to provide the prompts in the sameinformative and useable manner.

Additionally, the nature of many new computing devices with smalldisplays (e.g., PDAs and wearable computers) is that the computingdevices are transported with the user. However, traditional computerprograms are not typically designed to efficiently present informationto users in a wide variety of environments. For example, most computerprograms are designed with a prototypical user being seated at astationary computer with a large display device, and with the userdevoting fill attention to the display. In that environment, thecomputer program can be designed with the assumption that the user'sattention is predominately on the display device. However, many newcomputing devices with small displays can be used when the user'sattention is more likely to be diverted to some other task (e.g.,driving, using machinery, walking, etc.). Many traditional computerprograms, designed with large display devices in mind, frequently do notallow the user to quickly and easily reorient him- or her-self to thetask being carried out by the computer. For example, if the user isperforming a task by following a series of steps on a wearable computer,looks away from the display to focus his or her attention on crossing abusy intersection, and then returns to the task, it would be desirablefor the user to be able to quickly and easily reorient him- or her-selfto the task (in other words, readily know what steps he or she hasaccomplished so far and what the next step to be performed is).

Accordingly, there is a need for new techniques to display the currentstatus of tasks to a user.

SUMMARY

Dynamically displaying current status of tasks is described herein.

According to one aspect, a list of items corresponding to tasks that areto be performed are displayed. The tasks may be performed by a user(e.g., data entered by the user, words spoken by the user, actions takenby the user, and so forth) or alternatively by a computer (e.g., thesteps followed in carrying out a programmed task). At least a portion ofthe list is displayed at any given time along with an indication ofwhich task is the next task to be performed. As the user progressesthrough the set of tasks, the current status of his or her progressionthrough the corresponding items on the list is dynamically updated so asto readily inform the user (or someone else) as to what the current taskis that needs to be performed, as well as what tasks have already beenperformed and/or what tasks remain to be performed.

According to another aspect, only a subset of the list of items isdisplayed at any given time. The list is scrolled through as the tasksare performed so that different items are displayed as part of thesubset as tasks are performed.

According to another aspect, multiple lists of tasks to be performed bymultiple individuals (or computing devices) are displayed on a displayof the user. As the multiple individuals (or computing devices) finishthe tasks in their respective lists, an indication of such completion isforwarded to the user's computer, which updates the display to indicatethe next task in the list to be displayed. The user is thus able tomonitor the progress of the multiple individuals (or computing devices)in carrying out their respective tasks.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings. The same numbersare used throughout the figures to reference like components and/orfeatures.

FIG. 1 illustrates an exemplary computing device such as may be used inaccordance with certain embodiments of the invention.

FIG. 2 illustrates an exemplary user interface display in accordancewith certain embodiments of the invention.

FIG. 3 illustrates an exemplary display of an item list and currentlocation marker such as may be used in accordance with certainembodiments of the invention.

FIGS. 4A and 4B illustrates different ways in which the prompt in asequence can be changed.

FIG. 5 is a flowchart illustrating an exemplary process for displayingthe current status of tasks in accordance with certain embodiments ofthe invention.

FIGS. 6 and 7 illustrate alternative displays of the item list andcurrent location identifiers with reference to a sequence of tasks to becompleted in order to record a new inspection (e.g., a buildinginspection).

FIG. 8 illustrates an exemplary distributed environment in which thestatus of tasks being performed by multiple users can be monitored.

FIG. 9 illustrates an exemplary group of lists that may be displayed forthe distributed environment of FIG. 8.

DETAILED DESCRIPTION

Dynamically displaying the current status of tasks is described herein.A list of items or prompts that is to be traversed by a user in aparticular order is displayed to the user (e.g., a set of tasks the useris to perform in a particular sequence as part of his or her job, a setof words to be spoken, a list of questions or fields to be answered, andso forth). At least a portion of the list is displayed at any given timealong with an indication of which item in the list is the next item thatthe user needs to handle (e.g., the next task to perform, the next wordto speak, the next question to answer, and so forth). As the userprogresses through the list of tasks, the current status of his or herprogression through the prompts on the list is dynamically updated so asto readily inform the user as to what the current task is that needs tobe performed, as well as what tasks have already been performed and/orwhat tasks remain to be performed.

FIG. 1 illustrates an exemplary computing device 100 such as may be usedin accordance with certain embodiments of the invention. Computingdevice 100 represents a wide variety of computing devices, such aswearable computers, personal digital assistants (PDAs), handheld orpocket computers, telephones (e.g., cell phones), laptop computers,gaming consoles or portable gaming devices, desktop computers, Internetappliances, etc. Although the dynamic displaying of current status oftasks described herein is particularly useful if computing device 100has a small display, any size display may be used with the invention.

Computing device 100 includes a central processing unit (CPU) 102,memory 104, a storage device 106, one or more input controllers 108, andone or more output controllers 110 (alternatively, a single controllermay be used for both input and output) coupled together via a bus 112.Bus 112 represents one or more conventional computer buses, including aprocessor bus, system bus, accelerated graphics port (AGP), universalserial bus (USB), peripheral component interconnect bus (PCI), etc.

Memory 104 may be implemented using volatile and/or non-volatile memory,such as random access memory (RAM), read only memory (ROM), Flashmemory, electronically erasable programmable read only memory (EPROM),disk, and so forth. Storage device 106 is typically implemented usingnon-volatile “permanent” memory, such as ROM, EEPROM, magnetic oroptical diskette, memory cards, and the like.

Input controller(s) 108 are coupled to receive inputs from one or moreinput devices 114. Input devices 114 include any of a variety ofconventional input devices, such as a microphone, voice recognitiondevices, traditional qwerty keyboards, chording keyboards, half qwertykeyboards, dual forearm keyboards, chest mounted keyboards, handwritingrecognition and digital ink devices, a mouse, a track pad, a digitalstylus, a finger or glove device to capture user movement, pupiltracking devices, a gyropoint, a trackball, a voice grid device, digitalcameras (still and motion), and so forth.

Output controller(s) 110 are coupled to output data to one or moreoutput devices 116. Output devices 116 include any of a variety ofconventional output devices, such as a display device (e.g., a hand-heldflat panel display, an eyeglass-mounted display that allows the user toview the real world surroundings while simultaneously overlaying orotherwise presenting information to the user in an unobtrusive manner),a speaker, an olfactory output device, tactile output devices, and soforth.

One or more application programs 118 are stored in memory 104 andexecuted by CPU 102. When executed, application programs 118 generatedata that may be output to the user via one or more of the outputdevices 116 and also receive data that may be input by the user via oneor more of the input devices 114. For discussion purposes, oneparticular application program is illustrated with a user interface (UI)component 120 that is designed to present information to the userincluding dynamically displaying the current status of tasks asdiscussed in more detail below.

Although discussed herein primarily with reference to softwarecomponents and modules, the invention may be implemented in hardware ora combination of hardware, software, and/or firmware. For example, oneor more application specific integrated circuits (ASICs) could bedesigned or programmed to carry out the invention.

FIG. 2 illustrates an exemplary user interface display in accordancewith certain embodiments of the invention. User interface display 150can be, for example, the display generated by user interface 120 ofFIG. 1. UI display 150 includes an item or prompt list portion 152, auser choices portion 154, and an applet window portion 156. Additionallabels or prompts 158 may also be included (e.g., a title for the taskbeing handled, the current time, the amount of time left to finish thetask, etc.). List portion 152 displays a list that prompts the user oftasks that are to be handled by the user in a particular order. Anindication is also made to the user within list portion 152 of where theuser currently is in that list (that is, what the next item or task isthat needs to be handled by the user), and also identifies items ortasks (if any) that have already been handled by the user as well asfuture items or tasks (if any) that need to be handled by the user. Themanner in which an item or task is handled by the user is dependent onthe nature of the list, as discussed in more detail below.

User choices portion 154 displays the options for the user to selectfrom based on the next item or task in the list that needs to be handledby the user. For example, assume that the list in portion 152 is a listprompting the user regarding what information needs to be gathered inorder for the user to set up a meeting with a potential customer. Thelist of prompts in list portion 152 could be a list of tasks the usermust perform—that is, a list of information that needs to be collected(e.g., the customer's name, the location of the meeting, the time of themeeting, and so forth). If we further assume that the current task thatneeds to be handled by the user is entry of the location of the meeting,user choices portion 154 could display the various permissible inputsfor the location of the meeting (e.g., at the user's main office, at aremote office, at the customer's facility, and so forth).

By way of another example, the item list may be a list of prompts forthe information to be verbally input by the user in each step, with userchoices portion 154 displaying a list of which words can be spoken ineach step.

Applet window portion 156 displays additional information clarifying oramplifying the choices in user choices portion 154 (or the current itemor task in item list portion 152). Following the previous example, ifthe current task that needs to be handled by the user is entry of thelocation of the meeting, applet window portion 156 could displayadditional descriptive information for one or more of the permissibleinputs for the location of the meeting (e.g., a street address, adistance from the user's home, a map flagging the locations of thevarious meeting locations, and so forth).

The list displayed in list portion 152 is a list of items that is to betraversed by a user in a particular order. This can be a list of taskprompts regarding tasks that the user is to perform, a list of tasksprompts regarding tasks to be performed by another user or computer, andso forth. Any of a wide variety of lists can be displayed, such as a setof tasks the user is to perform in a particular sequence as part of hisor her job (this can be used, for example, to assist in training usersto do their jobs), a set of tasks the user is to perform in a particularsequence in order to assemble or install a product he or she haspurchased, a set of words to be spoken (e.g., queues as to what voiceinputs the user is to make in order to carry out a task), a list ofquestions or fields to be answered, and so forth. Alternatively, thelist of items may be a list of tasks or steps to be performed by acomputer or computer program. Such a list can be used, for example, by auser to track the process of the computer or program in carrying out theparticular sequence of steps. Additionally, depending on the nature ofthe sequence of tasks being performed, multiple lists of items may bedisplayed (e.g., a multi-tiered item list). Situations can arise inwhich the list of items or prompts is too large to be displayed in itsentirety. In such situations, only a portion of the list is displayed(e.g., centered on the item or prompt for the next task to beperformed). This subset of the steps to be performed is then scrolled astasks are completed, resulting in a dynamic list display that changeswhen a task is completed.

By displaying the list of prompts (or at least a portion thereof), theuser is able to readily identify the status of the set of tasks beingperformed (in other words, the user is also able to obtain a feel forwhere he or she is (or where the user or computer being monitored is) inprogressing through the sequence of tasks). The user is able to quicklyidentify one or more previous tasks (if any) in the sequence, as well asone or more future tasks (if any) in the sequence. Such information isparticularly helpful in reorienting the user to the sequence of tasks ifhis or her attention has been diverted away from the sequence. Forexample, the user's attention may be diverted away from the sequence toanswer questions from another employee. After answering the question,the user can look back at display 150 and quickly reorient him- orher-self into the sequence of tasks being performed.

Item lists may be a set of predetermined items, such as a particular setof steps to be followed to assemble a machine or a set of words to beuttered to carry out a task for a speech-recognizing computer.Alternatively, item lists may be dynamic, changing based on the user'scurrent location, current activity, past behavior, etc. For example,computer 100 of FIG. 1 may detect where the user is currently located(e.g., in his or her office, in the assembly plant, which assemblyplant, etc.), and provide the appropriate instructions to perform aparticular task based on that current location. Additional informationregarding detecting the user's current context (e.g., current location,current activity, etc.) can be found in a co-pending U.S. patentapplication Ser. No. 09/216,193, entitled “Method and System ForControlling Presentation of Information To a User Based On The User'sCondition”, which was filed Dec. 18, 1998, and is commonly assigned toTangis Corporation. This application is hereby incorporated byreference.

FIG. 3 illustrates an exemplary display of an item list and currentlocation marker such as may be used in accordance with certainembodiments of the invention. Assume that the sequence of items on thelist is a set of prompts regarding information that needs to be suppliedby the user in order to schedule a meeting. In the illustrated example,this list includes the following information: who the meeting is with(who), the date and time for the meeting (when), the duration of themeeting (how long), the location of the meeting (where), an indicationof any materials to bring to the material (bring), and an indication ofanyone else that should be notified of the meeting (cc).

FIG. 3 illustrates an example item list displayed in list portion 152 ofFIG. 2. Initially, the item list 170 is displayed, including thefollowing prompts: “who?”, “when?”, “how long?”, “where?”, and “bring?”.The prompts in list 170 provide a quick identification to the user ofwhat information he or she needs to input for each task in the sequenceof tasks for scheduling a meeting. Due to the limited display area, list170 does not include the prompts for each step in the sequence, butrather scrolls through the prompts as discussed in more detail below. Acurrent location marker 172 is also illustrated in FIG. 3 to identify tothe user what the current step is in the sequence. Assuming the meetingscheduling process has just begun, the first step in the sequence is toidentify who the meeting is with (who), which is identified by currentlocation marker 172 being situated above the prompt “who?”. In theillustrated example, location marker 172 is a circle or ball.Alternatively, other types of presentation changes may be made to alterthe appearance of a prompt (or area surrounding a prompt) in order todistinguish the current step from other steps in the sequence. Forexample, different shapes other than a circle or ball may be used for alocation marker, the text for the prompt may be altered (e.g., adifferent color, a different font, a different size, a differentposition on screen (e.g., slightly higher or lower than other prompts inthe list), and so forth), the display around the prompt may be altered(e.g., the prompt may be inverted so that it appears white on a blackbackground rather than the more traditional black on a white background,the prompt may be highlighted, the prompt may be encircled by a border,and so forth), etc. Those skilled in the art can easily determine avariety of alternate methods for marking the current step.

One additional presentation change that can be made to distinguish thecurrent step from other steps in the sequence is to change the promptitself. The prompt could be replaced with another prompt, or anotherprompt could be superimposed on the prompt for the current step. Forexample, the user may have a set of individuals that he or she typicallymeets with, and these may be superimposed on the “who?” prompt when itis the current step. FIGS. 4A-4B illustrates different ways in which theprompt in a sequence can be changed. FIG. 4A illustrates an example itemlist with the prompt for the current step in the sequence beingsuperimposed with various input options. A list 190 is illustrated andthe current step is to input who the meeting is to be with (the “who?”prompt). As illustrated, a set of common people that the user schedulesmeetings with (Jane, David, Lisa, and Richard) are superimposed on the“who?” prompt. The appearance of the underlying prompt “who?” may bechanged (e.g., shadowed out, different color, etc.) in order foroverlying input options to be more easily viewed. It is to beappreciated that the exact location of the superimposed set of inputoptions can vary (e.g., the characters of one or more input options mayoverlap the prompt, or be separated from the prompt).

FIG. 4B illustrates an example item list with the prompt for the currentstep in the sequence being replaced by the set of input options. A list192 is illustrated and the current step is to input who the meeting isto be with (the “who?” prompt). However, as illustrated, the “who?”prompt is replaced with a set of common people that the user schedulesmeetings with (Jane, David, Lisa, and Richard).

The user is thus given an indication of both the current step in thesequence as well as common responses to that step. The type ofinformation that is superimposed on or replaces the prompt can varybased on the current step. For example, when the “when?” prompt is thecurrent step it may have superimposed thereon the times that the user isavailable for the current day (or current week, and so forth).

Returning to FIG. 3, once the user enters the information identifyingwho the meeting is with (assume for purposes of this example the meetingis with Bob Smith), list 170 is changed to list 174 in which the prompt“who?” is replaced with the name “Bob Smith” and the current locationmarker 172 is changed to indicate the next prompt (“when?”) is thecurrent task that needs to be handled by the user. Assuming the userinputs that the meeting is to occur at 10 am on October 31, list 174 ischanged to list 176 in which the prompt “when?” is replaced with thedate and time of the meeting, and the current location marker 172 ischanged to indicate the next prompt (“how long?”) is the current taskthat needs to be handled by the user. Thus, as can be seen from lists172, 174, and 176, the current location marker 172 “bounces” along thelist from item to item, making the user readily aware of what thecurrent task is that he or she should be performing (that is, which datahe or she should be inputting in the present example).

Once the user inputs the duration of the meeting, list 176 is changed tolist 178. Given the limited display area, the user interface now scrollsthe list so that the leftmost item is no longer shown but a new item isadded at the right. Thus, the identification of “Bob Smith” is no longershown, but a prompt for who else should be notified of the meeting(“cc?”) is now shown. Once the user enters the location for the meeting(“home office”), list 178 is changed to list 180 and current locationmarker 172 is changed to indicate the next prompt (“bring?”) is thecurrent task that needs to be handled by the user. Thus, as can be seenwith lists 176, 178, and 180, current location marker 172 may not bemoved in response to an input but the list may be scrolled.

Thus, as can be seen in FIG. 3, the item list provides a series ofprompts identifying what tasks (if any) in the sequence have alreadybeen performed and what tasks (if any) remain to be performed. For thosetasks that have already been performed, an indication is made in thelist as to what action was taken by the user for those tasks (e.g., whatinformation was entered by the user in the illustrated example). Thus,the user can readily orient him- or her-self to the sequence of steps,even if his or her attention is diverted from the display for a periodof time. Alternatively, the prompts in the list need not be changed whenthe user enters the data (e.g., “who?” need not be replaced by “BobSmith”). The data input by the user can alternatively be displayedelsewhere (e.g., in applet window portion 156).

One advantage of the item lists described herein is that the listspresent the multiple steps or items in a concise manner—these steps oritems can also be referred to as idioms. When these idioms are presentedtogether in a sequence, the provide more information to the user thanwhen presented in independent form. For example, the idiom “bring?” byitself does not present as much information to the user as the entiresequence of idioms “who?”, “when?”, “how long?”, “where?”, and “bring?”.

The use of item lists as described herein also allows an individual to“zoom” in (and thus gain more information about) a particular task. Forexample, with reference to FIG. 3, the user is able to select and zoomin on the “where?” prompt and have additional information about thattask displayed (e.g., the possible locations for the meeting). The useris able to “backtrack” through the list (e.g., by moving a cursor to thedesired item and selecting it, or using a back arrow key or icon, orchanging the current location marker (e.g., dragging and dropping thelocation marker to the desired item), etc.) and see this additionalinformation for tasks already completed. Alternatively, the“backtracking” may be for navigational rather than informationalpurposes. Moving back through the list (whether by manipulation of thelocation marker or in some other manner) may also be used to accomplishother types of operations, such as defining a macro or annotation.

Additionally, by displaying the prompts for future items, the speed ofhandling of the sequence of the items by the user can potentially beincreased. For example, the user can see the prompt for the next one ormore items in the list and begin thinking about how he or she is goingto handle that particular item even before the computing device isfinished processing the input for the item he or she just handled.

According to another embodiment, multiple location markers are displayedalong with the item list—one marker identifying the current item to behandled by the user and another marker identifying the current itembeing processed by the computing device. Situations can arise where theuser can input data quicker than it can be processed by the computingdevice. For example, the user may be able to talk at a faster rate thanthe computing device is able to analyze the speech.

The use of two such markers can allow the user to identify if thecomputing device is hung up on or having difficulty processing aparticular input (e.g., identify a particular word spoken by the user,misrecognition of the input, improper parsing, etc.), the user canidentify this situation and go back to the task the computing device ishaving difficulty processing and re-enter the speech.

FIG. 5 is a flowchart illustrating an exemplary process for displayingthe current status of tasks in accordance with certain embodiments ofthe invention. The process of FIG. 5 is carried out by the userinterface of a computing device (e.g., interface 120 of FIG. 1), and maybe performed in software. Although FIG. 5 is discussed with reference toa location marker, it is to be appreciated that any of the presentationchanges discussed above an be used to identify items in the list.

Initially, an item list is displayed (act 200), which is a sequence ofitems or prompts for the user to follow. A current Location marker isalso displayed to identify the first item in the list (act 202), andinput corresponding to the first item in the list is received (act 204).The nature of this input can vary depending on the sequence of tasksitself (e.g., it may be data input by a user, an indication from anothercomputer program that the task has been accomplished, etc.). A check isthen made as to whether the end of the list has been reached (at 206).If the end of the list has been reached then the process stops (act208), waiting for the next sequence of tasks to begin or for the user tobacktrack to a previously completed task.

However, if the end of the list has not been reached, then a check ismade as to whether scrolling of the list is needed (act 210). Whetherscrolling of the list is needed can be based on a variety of differentfactors. For example, the user interface may attempt to make sure thatthere are always at least a threshold number of prompts before and/orafter the current location marker, the user interface may attempt tomake sure that the current task remains as close to the center of theitem list as is possible but that no portions of the item list be leftempty, etc. These factors can optionally be user-configurablepreferences, allowing the user to adjust the display to his or herparticular likes and/or dislikes (e.g., the user may prefer to see morefuture tasks than previous tasks).

If scrolling is needed, then the item list is scrolled by one item (oralternatively more items) in the appropriate direction (act 212). Theamount that the item list is scrolled can vary (e.g., based on the sizesof the different items in the list). The appropriate direction forscrolling can vary based on the activity being performed by the user andthe layout of the list (e.g., in the example of FIG. 3, the scrolling isfrom right to left when progressing forward through the list, and leftto right when backtracking through the list). Regardless of whether theordered item list is scrolled, after act 210 or 212 the current locationmarker is moved as necessary to identify the next item in the list thatis to be handled by the user (act 214). In some situations, movement ofthe current location marker may not be necessary due to the scrollingperformed (e.g., as illustrated with reference to lists 176 and 178 inFIG. 3). At some point after the current location marker is moved (ifnecessary), user input is received corresponding to the identified nextitem in the list (act 216). The process then returns to determinewhether the end of the list has been reached (act 206).

The item list and current location identifier or marker can be displayedin a wide variety of different manners. FIGS. 6 and 7 illustratealternative displays of the item list and current location identifierswith reference to a sequence of tasks to be completed in order to recorda new inspection (e.g., a building inspection). In the exemplary display240 of FIG. 6, an item list portion 242 and an applet window portion 244are illustrated. The item list portion 242 includes a list of tasks thatare to be handled by the user, each of which is information to beentered by the user. Once entered, the information is displayed inapplet window portion 244. A current location marker 246 advances downthe list in portion 242 to identify the current information that theuser needs to input (the customer's state in the illustrated display).Additional information is displayed at the top of display 240, includinga prompt 248 identifying a type of information being entered by the user(inspection information).

In the exemplary display 260 of FIG. 7, a multi-tiered item list isdisplayed including list portion 262 and list portion 264. In listportion 262, prompts for the overall process of recording a newinspection are listed, including selecting a new inspection option andthen entering inspection information. Two current location markers 266and 268 are illustrated, each providing a visual indication of where inthe overall process the current user is (inspection info in theillustrated display). A prompt 270 provides a further identification tothe user of where he or she is in the overall process. List portion 264includes prompts for the process of entering inspection information,with a current location marker 272 providing a visual indication ofwhere in the inspection information entry process the user currently is(customer state in the illustrated display).

In addition to tracking the status of tasks being performed by a singleuser, the dynamic displaying of the current status of tasks of thepresent invention can further be used to track the status of tasks beingperformed by multiple users. In this situation, information indicatingthe status of tasks being performed by multiple users is communicatedback to the computing devices of one or more other users, who in turncan view the status information of multiple users on a single display.

FIG. 8 illustrates an exemplary distributed environment in which thestatus of tasks being performed by multiple users can be monitored. Inthe illustrated example, multiple users Jamie, John, Max, and Carol eachhave a wearable computer with an eyeglass display 300, 302, 304, and306, respectively. An item list is displayed on the eyeglass display foreach of these users, with a current location marker to identify to therespective users where they are in the task sequences they areperforming. Information regarding their current location is alsocommunicated to another computing device of their supervisor Jane, whois also wearing an eyeglass display 308. The information communicated toJane's computer can be simply an identification of the current location(e.g., Jane's computer may already be programmed with all of the tasksin the list), or alternatively the entire (or at least a portion of) theitem list. The information for one or more of the users Jamie, John,Max, and Carol can then be displayed on display 308, allowing Jane tokeep track of the status of each of the users Jamie, John, Max, andCarol in performing their tasks. This allows Jane, as the supervisor, tosee if people are proceeding through their tasks too quickly or tooslowly (e.g., a user may be having difficulty and need assistance), toknow when the individual users will be finished with their tasks, etc.If a multi-tiered item list is being used, then the supervisor can alsozoom in on the particular step of a user and get additional informationregarding where the user is stuck.

FIG. 9 illustrates an exemplary group of lists that may be displayed oneyeglass display 308 of FIG. 8. Assume that each of the users John,Jamie, Max, and Carol are each performing a machine assembly processinvolving the following tasks: inventory the necessary parts, assemblean intake, lubricate a core part of the machine, install the assembledintake, verify that the batteries are fully charged, and then run adiagnostic program. The tasks in the machine assembly process areillustrated in a portion 310 of display 308 in an abbreviated form.Alternatively, the tasks illustrated in portion 310 may not beabbreviated, or may be represented in some other manner (e.g., asicons). A separate item list is displayed on display 308 for each of theusers along with a corresponding current location marker in the shape ofa ball or circle. Thus, as illustrated in FIG. 9, the viewer of display308 can readily identify that John is at the “assemble intake” step,Jamie and Max are both at the “install intake” step, and Carol is at the“verify charge” step. Thus, the supervisor viewing display 308 canquickly and easily determine, based on the item list and currentlocation markers, that each of Jamie, Max, and Carol is proceedingnormally through the assembly process, but that John is hung up on the“assemble intake” step, so the supervisor can check with John to see ifhe is experiencing difficulties with this step.

Conclusion

Although the description above uses language that is specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not limited to thespecific features or acts described. Rather, the specific features andacts are disclosed as exemplary forms of implementing the invention.

1. One or more computer-readable media storing a computer program that,when executed by one or more processors on a mobile computer, causes theone or more processors to: present, on a display, a subset of aplurality of steps in an order to be performed by a user; alter anappearance of a current step in the subset of steps that needs to beperformed by the user to distinguish the current step from other stepsin the subset; receive information about a current context of the userfrom a context awareness component that receives sensed information frommultiple sources and that mediates amongst the multiple sources to builda model of the current context of the user, the information about thecurrent context of the user comprising information on the user's currentlocation, current activity and/or previous behavior; in response to thereceived information about the current context of the user, alterinstructions for performing one or more of the subset of steps that needto be performed by the user based on the received information; allow theuser to input data corresponding to the current step; when input data isnot received from the user for the current step and information receivedfrom the context awareness component indicates that the user currentlyhas a high cognitive load, alter a manner of presenting information tothe user relating to the current step, comprising selecting a manner ofpresentation that is less intrusive upon the user and formatting theinformation relating to the current step based on the selected manner ofpresentation; scroll, in response to user input of data corresponding tothe current step, the plurality of steps so that a new subset of theplurality of steps is presented to the user; and amend the step forwhich the data input was received from the user with indications of thatdata input.
 2. One or more computer-readable media as recited in claim1, wherein the computer program further causes the one or moreprocessors to: alter, in response to user input of data corresponding tothe current step, the appearance of another step as necessary toidentify the new current step in the subset of steps that needs to beperformed by the user.
 3. One or more computer-readable media as recitedin claim 1, wherein altering the appearance of the current stepcomprises marking the current location with a ball.
 4. One or morecomputer-readable media as recited in claim 1, wherein altering theappearance of the current step comprises displaying the current stepdifferently than other steps in the subset.
 5. One or morecomputer-readable media as recited in claim 1, wherein altering theappearance of the current step comprises replacing the current step witha set of one or more input options for the current step.
 6. One or morecomputer-readable media as recited in claim 1, wherein altering theappearance of the current step comprises superimposing, on the currentstep, a set of one or more input options for the current step.
 7. One ormore computer-readable media as recited in claim 1, wherein the computerprogram further causes the one or more processors to: replace, in thesubset, the display of the current step with a display of the inputdata.
 8. One or more computer-readable media as recited in claim 1,wherein the computer program further causes the one or more processorsto: display a current processing marker that identifies which step inthe subset of steps is currently being processed by the one or moreprocessors.
 9. One or more computer-readable media as recited in claim1, wherein the one or more computer-readable media comprise a computermemory of a wearable computer.
 10. A method comprising: displaying alist of items to be handled by a user in a particular order; identifyingone item in the list of items that is a current item; displayinginstructions for performing the current item, the instructionsspecifying one or more possible inputs by the user in relation to thecurrent item; receiving information about a current context of the user;in response to the received information about the current context of theuser, altering a manner in which the instructions for performing thecurrent item are presented based on the received information, thealtering comprising selecting a manner of presentation that is lessintrusive upon the user and formatting the instructions for performingthe current item based on the selected manner of presentation; receivinga user input corresponding to the current item; updating, in response toreceiving the user input, the list to reflect the received user inputcorresponding to the current item; and updating the identification ofthe one item that is the current item to indicate the next item in thelist of items as the current item.
 11. A method as recited in claim 10,wherein displaying the list of items comprises displaying at least oneitem corresponding to a task that has already been performed and atleast one item corresponding to a task that still needs to be performedby the user.
 12. A method as recited in claim 10, wherein displaying thelist of items comprises displaying, after the user input is received,the user input in place of the corresponding item.
 13. A method asrecited in claim 10, wherein displaying the list of items comprisesdisplaying only a subset of the list of items at any given time, thesubset of the list of items comprising a plurality of items.
 14. Amethod as recited in claim 13, further comprising scrolling through thelist of items to display different subsets as items in the list arehandled by the user.
 15. A method as recited in claim 10, furthercomprising displaying a current processing marker identifying an item inthe list of items corresponding to a current user input being processed.16. A method as recited in claim 10, wherein the list of items comprisesa list of tasks to be completed by the user, and wherein handling of anitem by the user comprises the user completing the task.
 17. A method asrecited in claim 16, wherein the list of tasks comprises a list ofprompts corresponding to data to be entered into the computer by theuser.
 18. A method as recited in claim 10, wherein the list of itemscomprises a list of prompts of words to be spoken by the user, andwherein handling of an item by the user comprises speaking one or morewords corresponding to the prompt.
 19. A system comprising: one or moreoutput devices; a user interface component, coupled to an output device,causing a user interface to be output on the output device; a modulethat provides information about the current context of the user to theuser interface component; wherein the user interface includes a listportion in which a list of a plurality of items to be handled by a userare output; wherein the user interface further includes a currentlocation marker identifying one of the items in the list as the currentitem to be handled by the user; wherein the user interface furtherdisplays information relating to the current item, the informationcomprising one or more possible inputs by the user in relation to thecurrent item in the list; wherein the user interface further updates thelist, in response to the user providing an input in relation to thecurrent item in the list, to reflect the provided input; wherein theuser interface component further automatically updates the currentlocation marker to identify a new item in the list in response to theuser handling the current item in the list; wherein the user interfacecomponent, in response to the received information about the currentcontext of the user, alters a manner of presenting information to theuser, comprising selecting a manner of presentation that is lessintrusive upon the user and formatting the information to be presentedbased on the selected manner of presentation.
 20. A system as recited inclaim 19, wherein the user interface component further replaces, afterthe user has handled the current item, a user input in place of thecurrent item.